/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package contatos.patterns.state;

import contatos.collection.Contatos;
import contatos.model.Contato;
import contatos.presenter.ManterContatoPresenter;
import contatos.view.ManterContatoView;
import javax.swing.JOptionPane;

/**
 *
 * @author felipe
 */
public class EditarState extends ContatoState {

    private ManterContatoView view;
    private Contatos contatos;
    private Contato contato;

    public EditarState(ManterContatoPresenter presenter, Contato contato) throws Exception {
        super(presenter);

        view = this.presenter.getView();
        contatos = Contatos.getInstancia();

        this.contato = contato;

        //habilitando os campos
        view.getTxtNome().setEnabled(true);
        view.getTxtTelefone().setEnabled(true);
        view.getTxtOperadora().setEnabled(true);
        view.getTxtUF().setEnabled(true);
        view.getBtnSalvar().setEnabled(true);
        view.getBtnSalvar().setText("Alterar");

        //desabilitando o botao de editar
        view.getBtnEditar().setEnabled(false);

       

        view.getTxtNome().requestFocus();
    }

    @Override
    public void incluir() {
            String nome = view.getTxtNome().getText();
        String telefone = view.getTxtTelefone().getText();
        String operadora = view.getTxtOperadora().getText();
        String uf = view.getTxtUF().getText();
        try {
            boolean alterou = contatos.alterar(contato, nome, telefone, operadora, uf);
            if (!alterou) {
                JOptionPane.showMessageDialog(view, "Não foi possível alterar o contato");
            } else {
                view.setVisible(false);
                view.dispose();
            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(view, ex.getMessage());
        }
    }

    @Override
    public void visualizar() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void alterar() {
    

    }

}
